W32: Support horizontal mouse wheel scrolling
authorРуслан Ижбулатов <lrn1986@gmail.com>
Thu, 16 Apr 2015 23:11:14 +0000 (23:11 +0000)
committerРуслан Ижбулатов <lrn1986@gmail.com>
Fri, 17 Apr 2015 04:38:34 +0000 (04:38 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=748014

gdk/win32/gdkevents-win32.c
gdk/win32/gdkmain-win32.c
gdk/win32/gdkprivate-win32.h

index c55cee049e475ac2bf08463e5f65b1037e12fab3..7ff7c082321f5c4138ceea80921b276b1a446ab5 100644 (file)
@@ -2450,6 +2450,7 @@ gdk_event_translate (MSG  *msg,
       break;
 
     case WM_MOUSEWHEEL:
+    case WM_MOUSEHWHEEL:
       GDK_NOTE (EVENTS, g_print (" %d", (short) HIWORD (msg->wParam)));
 
       /* WM_MOUSEWHEEL is delivered to the focus window. Work around
@@ -2500,8 +2501,13 @@ gdk_event_translate (MSG  *msg,
 
       event = gdk_event_new (GDK_SCROLL);
       event->scroll.window = window;
-      event->scroll.direction = (((short) HIWORD (msg->wParam)) > 0) ?
-       GDK_SCROLL_UP : GDK_SCROLL_DOWN;
+
+      if (msg->message == WM_MOUSEWHEEL)
+         event->scroll.direction = (((short) HIWORD (msg->wParam)) > 0) ?
+           GDK_SCROLL_UP : GDK_SCROLL_DOWN;
+      else if (msg->message == WM_MOUSEHWHEEL)
+         event->scroll.direction = (((short) HIWORD (msg->wParam)) > 0) ?
+           GDK_SCROLL_RIGHT : GDK_SCROLL_LEFT;
       event->scroll.time = _gdk_win32_get_next_tick (msg->time);
       event->scroll.x = (gint16) point.x;
       event->scroll.y = (gint16) point.y;
index f12c16673bdbd5b62640c165c2d1e4f48ac28ab7..ee28ba605a3a25d67df07c217d22f12f39cd6325 100644 (file)
@@ -759,6 +759,7 @@ _gdk_win32_message_to_string (UINT msg)
       CASE (WM_MBUTTONUP);
       CASE (WM_MBUTTONDBLCLK);
       CASE (WM_MOUSEWHEEL);
+      CASE (WM_MOUSEHWHEEL);
       CASE (WM_XBUTTONDOWN);
       CASE (WM_XBUTTONUP);
       CASE (WM_XBUTTONDBLCLK);
index dbb9a7900b37a220118c2fe12bf2d2f02f05d558..a14d8f5a37576f15761b20b8dbb2c3dc572499af 100644 (file)
@@ -90,6 +90,9 @@
 #ifndef WM_APPCOMMAND
 #define WM_APPCOMMAND 0x319
 #endif
+#ifndef WM_MOUSEHWHEEL
+#define WM_MOUSEHWHEEL 0x20E
+#endif
 
 #ifndef CF_DIBV5
 #define CF_DIBV5 17